import request from '@/utils/request';
import qs from 'qs';
import type { ResponseData } from '../typing';
// 参数接口
export interface UpdateOrderPickupParams {
    /*项目code */
    projectCode: string;

    /*项目名称 */
    projectName: string;

    /*条线 */
    tx: string;

    /*用户id */
    userId: number;

    /*用户姓名 */
    nickname: string;
    // 主键 */
    id: number;
}

/**
 * 更新默认接单人
 * @param {object} params 管理后台 - 默认接单人更新 Request VO
 * @param {string} params.projectCode 项目code
 * @param {string} params.projectName 项目名称
 * @param {string} params.tx 条线
 * @param {number} params.userId 用户id
 * @param {string} params.nickname 用户姓名
 * @param {number} params.id 主键
 * @returns
 */
export function updateOrderPickup(params: UpdateOrderPickupParams): Promise<ResponseData<boolean>> {
    return request.put(`/yfwy/order-pickup`, params);
}
// 参数接口
export interface GetOrderPickupPageParams {
    // 当前第几页(默认1) */
    current?: number;
    // 每页条数(默认20) */
    size?: number;
    // 分类名称 */
    classifyName?: string;
    // 条线 */
    orderProfessionalLine?: string;
    // 工单类型（父级分类），0报修、1投诉 */
    orderType?: number;
    // 工单子类（报修类型），0户内、1公区 */
    orderTypeSub?: string;
    // 分类状态，0禁用，1启用 */
    status?: number;
    page?: {
        records?: {
            createTime?: string;
            updateTime?: string;
            creator?: Record<string, unknown>;
            updater?: Record<string, unknown>;
            // 主键 */
            id?: Record<string, unknown>;
            // 分类名称 */
            classifyName?: string;
            // 条线 */
            orderProfessionalLine?: string;
            // 工单类型（父级分类），0报修、1投诉 */
            orderType?: Record<string, unknown>;
            // 工单子类（报修类型），0户内、1公区 */
            orderTypeSub?: string;
            // 分类状态，0禁用，1启用 */
            status?: Record<string, unknown>;
        }[];
        total?: Record<string, unknown>;
        size?: Record<string, unknown>;
        current?: Record<string, unknown>;
        orders?: {
            column?: string;
            asc?: boolean;
        }[];
        optimizeCountSql?: boolean;
        searchCount?: boolean;
        optimizeJoinOfCountSql?: boolean;
        maxLimit?: Record<string, unknown>;
        countId?: string;
        pages?: Record<string, unknown>;
    };
}
// 响应接口
export interface GetOrderPickupPageRes {
    code: number;

    /* */
    data: {
        /* */
        size: number;

        /* */
        total: number;

        /* */
        current: number;

        /* */
        records: {
            /* */
            createTime: Record<string, unknown>;

            /* */
            updateTime: Record<string, unknown>;

            /* */
            creator: number;

            /* */
            updater: number;

            /*主键 */
            id: number;

            /*项目code */
            projectCode: string;

            /*项目名称 */
            projectName: string;

            /*条线 */
            tx: string;

            /*默认接单人id */
            userId: number;

            /*默认接单人姓名 */
            nickname: string;
        }[];

        /* */
        pages: number;
    };

    /* */
    msg: string;
}
/**
 * 获得默认接单人分页
 * @param {string} projectCode 项目code
 * @param {string} tx 条线
 * @param {string} nickname 默认接单人姓名
 * @param {string} current 当前第几页(默认1)
 * @param {string} size 每页条数(默认20)
 * @returns
 */
export function getOrderPickupPage(params: GetOrderPickupPageParams): Promise<GetOrderPickupPageRes> {
    return request.get(`/yfwy/order-pickup/page?${qs.stringify(params)}`);
}

// 参数接口
export interface CreateOrderPickupParams {
    /*项目code */
    projectCode: string;

    /*项目名称 */
    projectName: string;

    /*条线 */
    tx: string;

    /*用户id */
    userId: number;

    /*用户姓名 */
    nickname: string;
}

/**
 * 创建默认接单人
 * @param {object} params 管理后台 - 默认接单人创建 Request VO
 * @param {string} params.projectCode 项目code
 * @param {string} params.projectName 项目名称
 * @param {string} params.tx 条线
 * @param {number} params.userId 用户id
 * @param {string} params.nickname 用户姓名
 * @returns
 */
export function createOrderPickup(params: CreateOrderPickupParams): Promise<ResponseData<boolean>> {
    return request.post(`/yfwy/order-pickup`, params);
}

// 响应接口
export interface GetOrderPickupRes {
    /* */
    code: number;

    /* */
    data: {
        /* */
        createTime: Record<string, unknown>;

        /* */
        updateTime: Record<string, unknown>;

        /* */
        creator: number;

        /* */
        updater: number;

        /*主键 */
        id: number;

        /*项目code */
        projectCode: string;

        /*项目名称 */
        projectName: string;

        /*条线 */
        tx: string;

        /*默认接单人id */
        userId: number;

        /*默认接单人姓名 */
        nickname: string;
    };

    /* */
    msg: string;
}
/**
 * 获得默认接单人
 * @param {string} id
 * @returns
 */
export function getOrderPickup(id: number): Promise<GetOrderPickupRes> {
    return request.get(`/yfwy/order-pickup/${id}`);
}
/**
 * 删除默认接单人
 * @param {string} id
 * @returns
 */
export function deleteOrderPickup(id: number): Promise<ResponseData<boolean>> {
    return request.delete(`/yfwy/order-pickup/${id}`);
}
